<?php
/**
 * Inter组件之Session操作器：抽象类
 * 列出必须要实现的方法
 *
 * @author Horse Luke<horseluke@126.com>
 * @copyright Horse Luke, 2010
 * @license the Apache License, Version 2.0 (the "License"). {@link http://www.apache.org/licenses/LICENSE-2.0}
 * @version $Id: Abstract.php 152 2011-01-25 11:28:32Z horseluke@126.com $
 * @package Inter_Session
 * @subpackage Inter_Session_Operator
 */
abstract class Inter_Session_Operator_Abstract{
    
    /**
     * 构造函数
     * @return Inter_Session_Operator_Abstract
     */
    public function __construct(){
    }
    
    
    /**
     * 注册一个session存储器实例。
     * 本类模仿session_set_save_handler
     * 要在本类的session_start之前启动。
     * @param Inter_Session_Storage_Abstract &$handler 一个session存储器实例
     */
    public function setStorageHandler(&$handler){
    }
    
    /**
     * 清除session
     */
    public function clear(){
    }
    
    /**
     * 设置session
     * @param mixed $k
     * @param mixed $v
     */
    public function set($k,$v=null){
    }
    
    /**
     * 获取session
     * @param string|null $key
     * @return mixed
     */
    public function get($key = null){
    }
    
    /**
     * 删除某个/某组session
     * @param string $k
     * @return bool
     */
    public function del($k){
    }
    
    /**
     * 模拟php函数session_start，启动session机制。
     * @return bool
     */
    public function session_start(){
    }
    
    /**
     * 禁止使用原生session_set_save_handler，并抛出异常。
     * 请使用setStorageHandler方法
     * @throws Exception
     */
    public function session_set_save_handler(){
        throw new Exception('Please use this method instead:'. __CLASS__. '->setStorageHandler()' );
    }
}